/**
 * <h3>ICreateService</h3>
 * <p>创造空间管理服务接口</p>
 *
 * <h3>功能描述</h3>
 * <p>定义创造空间相关的业务操作，供实现类完成具体数据库交互逻辑</p>
 * <p>支持用户创作空间的管理功能，包括查看个人创作、加入创作空间、移除创作等核心操作</p>
 * <p>接口设计简洁，专注于AI创作空间的核心功能实现</p>
 *
 * <h3>元数据</h3>
 * <ul>
 *    <li>作者：郭强</li>
 *    <li>创建日期：2025年01月</li>
 * </ul>
 *
 * <h3>其他信息</h3>
 * <ul>
 *    <li>参考链接：<a href="https://example.com">官方网页</a></li>
 *    <li>示例代码：{@code new ICreateService()} </li>
 * </ul>
 *
 * @apiNote 接口方法需保证事务一致性与线程安全；实际实现应避免直接new
 * @implSpec 专注于创造空间管理，提供简洁的创作空间操作接口
 * @since 1.0.0
 */

package com.dnndo.system.service;

import com.dnndo.system.domain.dto.EnerateApiDTO;

import java.util.List;

/**
 * 创作空间服务接口
 */
public interface ICreateService {

    /**
     * 获取我的创作空间列表
     * @param userId 包含用户ID的创作空间查询对象
     * @return List<EnerateApiDTO> 用户创作空间列表
     * @see com.dnndo.system.domain.dto.EnerateApiDTO
     */
    List<EnerateApiDTO> selectwork(Long userId);

    /**
     * 加入我的创作空间
     * @param dto 包含加入创作空间相关信息的传输对象
     * @return int 受影响的数据库记录数，用于判断操作是否成功
     * @see com.dnndo.system.domain.dto.EnerateApiDTO
     */
    int enerate_add(EnerateApiDTO dto);

    /**
     * 移除我的创作空间
     * @param dto 包含移除创作空间相关信息的传输对象
     * @return int 受影响的数据库记录数，用于判断操作是否成功
     * @see com.dnndo.system.domain.dto.EnerateApiDTO
     */
    int enerate_del(EnerateApiDTO dto);
}
